package com.my.structuraltype.mediator;
/*
 * 调停者模式与其他模式的关系
	1.门面模式
	门面模式和调停者模式很相似，两者均用来给出一个低耦合度的系统。门面模式为一个子系统提供一个简单的接口(调停者是在一个系统内部)，其中消息的传送是单方向的，
	因为门面模式的客户端只通过门面类向子系统发出消息，而不是相反的情况。
	2.观察者模式
	调停者模式与观察者模式是功能相类似的设计模式，它们之间是相互竞争的关系。换言之，使用了其中一者往往意味着放弃另一者。
	观察者模式通过引入观察者对象和主题对象来达到将通信分散化的目的；而调停者模式则封装了对象之间的通信，从而将通信集中到一个个中介对象中。
	
	电脑主板:电信的调停者模式
	
	调停者是在一个系统内部,所有的同事节点都要持有调停者的引用,是双向关联的
*/
public class Test {

	public static void main(String[] args) {
		
		ConcreteMediator mediator = new ConcreteMediator();
		
		ConcreteColleagueA a = new ConcreteColleagueA(mediator);
		ConcreteColleagueB b = new ConcreteColleagueB(mediator);
		
		mediator.setA(a);
		mediator.setB(b);
		
		// I'm changed and I will notify the mediator that I'm changed,the mediator will notify the other colleage
		a.opertatoin(); 
		b.opertatoin();
	}

}
